Skill Development

পিএইচপি এডভান্স - PHP Advance

Please, contribute to add content into পিএইচপি এডভান্স - PHP Advance.
Content

পিএইচপি- তারিখ এবং সময় - PHP Date & Time

পিএইচপি date() ফাংশনটি তারিখ এবং/অথবা সময়কে সাজানোর জন্য ব্যবহার করা হয়।


পিএইচপি date() ফাংশন


পিএইচপি date() ফাংশন একটি টাইমস্ট্যাম্পকে পড়ার উপযোগী করে তারিখ এবং সময়ে সাজায়।

সিনট্যাক্স

kt_satt_skill_example_id=179

প্যারামিটারবিবরণ
formatআবশ্যক। টাইমস্ট্যাম্প এর ফরম্যাটকে নির্দেশ করে।
timestampঐচ্ছিক। একটি টাইমস্ট্যাম্পকে নির্দেশ করে। ডিফল্ট হলো বর্তমান তারিখ ও সময়।
প্যারামিটার এর বিবরণ

একটি টাইমস্ট্যাম্প হলো ক্যারেক্টারের ধারাবাহিকতা, যা একটি নির্দিষ্ট ইভেন্ট সম্পন্ন হওয়ার পর তারিখ এবং/অথবা সময়কে বর্ণনা করে।


সাধারণ তারিখ পাওয়ার উপায়

আপনি কিভাবে তারিখের ফরম্যাট করতে চাচ্ছেন তা date() ফাংশনের আবশ্যক প্যারামিটার( format) এর মাধ্যমে নির্ধারণ করে দিতে হয়।

এখানে কিছু ক্যারেক্টার দেওয়া হলো যেগুলো সাধারণত তারিখের জন্য ব্যবহার করা হয়ঃ

  • d - মাসের মধ্যে একটি দিনকে রিপ্রেজেন্ট করে (১ থেকে ৩১)।
  • m - মাসকে রিপ্রেজেন্ট করে (১ থেকে ১২)।
  • Y - একটি বৎসরকে রিপ্রেজেন্ট করে (চার ডিজিটে)।
  • l(ছোট অক্ষরের 'L') - সপ্তাহের একটি দিনকে রিপ্রেজেন্ট করে।

নিজের ইচ্ছামতো তারিখ এবং সময়কে ফরম্যাট করার জন্য স্পেশাল ক্যারেক্টার যেমনঃ "/", ".", অথবা "-" ব্যবহার করা যায়। নিচের উদাহরণটি অনুশীলন করুন।

নিচের উদাহরণে আজকের তারিখকে তিনটি ভিন্ন সাজে দেখানো হয়েছেঃ

kt_satt_skill_example_id=180


সাধারণ সময় পাওয়ার উপায়

এখানে কিছু ক্যারেক্টার দেওয়া হলো যেগুলো সাধারণত সময়ের জন্য ব্যবহার করা হয়ঃ

  • h - 12-hour ফরম্যাটের ঘন্টাকে নির্দেশ করে যা শুন্য(০) থেকে শুরু হয়(00 থেকে 12)
  • i - মিনিটকে নির্দেশ করে যা শুন্য(০) থেকে শুরু হয়(00 থেকে 59)
  • s - সেকেন্ডকে নির্দেশ করে যা শুন্য(০) থেকে শুরু হয়(00 থেকে 59)
  • a - ছোট অক্ষরের Ante meridiem(am) এবং Post meridiem(pm)

নিচের উদাহরণে নির্দিষ্ট ফরম্যাটে বর্তমান সময় আউটপুট নেওয়া হলোঃ

kt_satt_skill_example_id=181

বিঃদ্রঃ পিএইচপি date() ফাংশন আপনার সার্ভারের বর্তমান তারিখ/সময় রিটার্ন করবে!


স্বয়ংক্রিয়ভাবে সাইটের কপিরাইট সময় সেট করা

আপনার ওয়েবসাইটে কপিরাইট বৎসর অটোমেটিক আপডেট রাখার জন্য পিএইচপি date() ফাংশন ব্যবহার করুন:

kt_satt_skill_example_id=182


কিভাবে আপনার টাইম জোন(time zone) পাবেন?

পূর্বের কোডগুলোর মাধ্যমে আপনি হয়তো সঠিক সময় পাননি, এর কারন সম্ভবত আপনি অন্য কোন দেশে আছেন অথবা আপনার সার্ভারের সময় অন্য টাইম জোনে সেট করা আছে।

তাই, আপনি যদি সঠিক সময় পেতে চান, তাহলে আপনার প্রয়োজন মতো নির্দিষ্ট টাইমজোন সেট করে নিন।

নিচের উদাহরণে টাইম জোন "Asia/Dhaka" তে সেট করা হয়েছে এবং তারপর নির্দিষ্ট ফরম্যাটে বর্তমান সময়ের আউটপুট নেওয়া হয়েছেঃ

kt_satt_skill_example_id=183


পিএইচপি mktime() ফাংশনের মাধ্যমে একটি তারিখ তৈরি

date() ফাংশনের ঐচ্ছিক প্যারামিটার(timestamp) একটি টাইমস্ট্যাম্পকে নির্দেশ করে। আপনি যদি কোন টাইমস্ট্যাম্প নির্দিষ্ট করে দেন, তাহলে বর্তমান তারিখ এবং সময় ব্যবহৃত হবে(উপরের উদাহরণে যেমনটি দেখানো হয়েছে)।

তারিখের জন্য mktime() ফাংশন Unix টাইমস্ট্যাম্প রিটার্ন করে। Unix টাইমস্ট্যাম্প Unix Epoch (January 1 1970 00:00:00 GMT) এবং নির্ধারিত সময়ের মধ্যে সেকেন্ডের সংখ্যা ধারণ করে।

নোটঃ Unix কি তা জানার জন্য এই Unix শব্দটির উপর মাউসের কার্সর ধরুন।

সিনট্যাক্স

kt_satt_skill_example_id=184

নিচের উদাহরণটি mktime() ফাংশনের কয়েকটি প্যারমিটার হতে তারিখ এবং সময় রিটার্ন করেঃ

kt_satt_skill_example_id=185


পিএইচপি strtotime() ফাংশনের সাহায্যে স্ট্রিং থেকে তারিখ তৈরি

পিএইচপি strtotime() ফাংশন আমাদের কাছে সহজে পাঠ্যোগ্য এমন স্ট্রিংকে Unix টাইমে রুপান্তর করে।

সিনট্যাক্স

kt_satt_skill_example_id=186

নিচের উদাহরণে strtotime() ফাংশন ব্যবহার করে তারিখ ও সময় তৈরি করে দেখানো হলোঃ

kt_satt_skill_example_id=188

স্ট্রিং থেকে তারিখে রুপান্তরের ক্ষেত্রে পিএইচপি অনেক চতুর, তাই আপনি বিভিন্ন ধরনের ভ্যালু অন্তর্ভূক্ত করতে পারেনঃ

kt_satt_skill_example_id=189

strtotime() ফাংশনটি শতভাগ প্রত্যাশিত ফলাফল নাও দিতে পারে। তাই এই ফাংশনে স্ট্রিং সরবরাহ করার সময় চেক করে নিন।


তারিখ সংক্রান্ত অধিক উদাহরণ

নিচের উদাহরণে পরবর্তী ৬টি শুক্রবার কোন কোন তারিখে পড়ে তা দেখানো হয়েছেঃ

kt_satt_skill_example_id=190

নিচের উদাহরণে ৬ই নভেম্বর হতে এখনো কতোদিন বাকি আছে তা আউটপুট দেখাবেঃ

kt_satt_skill_example_id=191

 

Content added || updated By

পিএইচপি Include - PHP incluce() function

পিএইচপির মাধ্যমে আপনি এক ফাইলের কোড কপি করে অন্য ফাইলে নিতে পারেন। নির্দিষ্ট কোন ফাইল থেকে সকল টেক্সট/কোড/মার্কআপ কপি করে অন্য ফাইলে নেওয়ার জন্য পিএইচপি include অথবা require স্টেটমেন্ট ব্যবহার করা হয়। এক্ষেত্রে যে ফাইলের মধ্যে include স্টেটমেন্ট ব্যবহার করা হয় কপি কোড সেই ফাইলেই সম্পাদিত হয়।

ধরুন আপনি একই পিএইচপি কোড, এইচটিএমএল কোড অথবা টেক্সট কে একাধিক পেজে অন্তর্ভূক্ত করতে চাচ্ছেন তাহলে আপনি অন্তর্ভুক্তির এই পদ্ধতি(include অথবা require স্টেটমেন্ট) ব্যবহার করতে পারেন।


পিএইচপি include এবং require স্টেটমেন্ট

সার্ভার আপনার ফাইলকে এক্সিকিউট করার পূর্বেই আপনি include অথবা require স্টেটমেন্টের মাধ্যমে এক বা একাধিক পিএইচপি ফাইলের কন্টেন্ট বা কন্টেন্টসমূহ আপনার পিএইচপি ফাইলে অন্তর্ভূক্ত করতে পারেন।

include অথবা require স্টেটমেন্ট প্রায় একই অর্থে ব্যবহত হয়, তবে ফাইল বিদ্যমান না থাকলে বা failure এর ক্ষেত্রে পার্থক্য প্রতীয়মানঃ

include স্টেটমেন্টrequire স্টেটমেন্ট
include স্টেটমেন্ট শুধুমাত্র একটি warning দেখাবে (E_WARNING) কিন্তু স্ক্রিপ্টের এক্সিকিউশন বন্ধ করবে না।require স্টেটমেন্ট fatal error তৈরি করবে (E_COMPILE_ERROR) এবং স্ক্রিপ্টের এক্সিকিউশন বন্ধ করে দিবে।


সুতরাং অন্তর্ভূক্তকৃত(included) ফাইল মিসিং হওয়া স্বত্তেও আপনি যদি কোড এক্সিকিউশন চালু রাখতে চান এবং ইউজারদেরকে আউটপুট দেখাতে চান তাহলে include স্টেটমেন্ট ব্যবহার করুন।

অন্যথায় ফ্রেমওয়ার্ক, CMS(Content Manaement System) অথবা অন্য যেকোন জটিল পিএইচপি এপ্লিকেশনের ক্ষেত্রে সর্বদাই require স্টেটমেন্ট ব্যবহার করুন। যদি দূর্ঘটনাবশত আপনার কোন প্রধান(key) ফাইল মিসিং হয়, তাহলে এটি আপনার এপ্লিকেশনের সিকিউরিটি এবং অখন্ডতার(security and integrity) স্বার্থে কোন কম্প্রোমাইজ করবে না।

ফাইল অন্তর্ভূক্ত(include) করলে কাজ অনেক সাশ্রয় হয়। সুতরাং আপনি চাইলে আপনার ওয়েবসাইটের সবগুলো পেজের জন্য একটি স্ট্যান্ডার্ড হেডার, ফুটার এবং মেনু তৈরি করে নিতে পারেন এবং include এবং require স্টেটমেন্ট ব্যবহার করে সকল পেজে যুক্ত করতে পারেন।

মনে করুন, আপনার ওয়েবসাইটের মেনু-বারে কোন তথ্য আপডেট করতে হবে। এর জন্য আপনাকে সবগুলো পেজ আলাদা ভাবে আপডেট করতে হবে না। শুধুমাত্র অন্তর্ভূক্তকৃত(included) ফাইলটি আপডেট করে নিলেই সবগুলো পেজের মেনু-বার আপডেট হয়ে যাবে।

সিনট্যাক্স

kt_satt_skill_example_id=192


ফাইল অন্তর্ভুক্তকরণ উদাহরণ

মনে করুন, আমাদের একটি স্ট্যান্ডার্ড মেনু ফাইল রয়েছে যার নাম "menu.php":

kt_satt_skill_example_id=193

আমরা আমাদের ওয়েবসাইটের সকল পেজে এই মেনু ফাইলটি ব্যবহার করত চাচ্ছি। নিচের উদাহরণের সাহাযে আমরা এটা করে দেখিয়েছি। এই মেনু ফাইলটি আমরা একটি div এলিমেন্টের মধ্যে যুক্ত করেছি যেন পরবর্তীতে সিএসএস এর মাধ্যমে খুব সহজেই যেকোনো স্টাইল করতে পারি।

kt_satt_skill_example_id=194


মনে করুন, আমাদের একটি স্ট্যান্ডার্ড ফুটার ফাইল রয়েছে যার নাম "footer.php"।

kt_satt_skill_example_id=195

ফুটার ফাইলকে পেজের মধ্যে অন্তর্ভূক্ত করার জন্য include স্টেটমেন্ট ব্যবহার করুনঃ

kt_satt_skill_example_id=196


পিএইচপি include বনাম require

পিএইচপি কোডের মধ্যে ফাইল অন্তর্ভূক্ত করার জন্য require স্টেটমেন্টটিও ব্যবহার করা হয়।

যাইহোক, এদের মধ্যে একটি বড় পার্থক্য বিদ্যমান। ধরুন include স্টেটমেন্টের মাধ্যমে ফাইল অন্তর্ভূক্ত করা হলো এবং কোন কারনে ফাইলটি মিসিং হয়ে গেলো তারপরেও পিএইচপি স্ক্রিপ্ট এর এক্সিকিউশন চালু থাকবেঃ

kt_satt_skill_example_id=197

আমরা যদি একই উদাহরণটিতে require স্টেটমেন্ট ব্যবহার করি, তাহলে echo স্টেটমেন্টের এক্সিকিউশন বন্ধ হয়ে যাবে। কারন আবশ্যক ফাইলটি না পাওয়া গেলে require স্টেটমেন্টটি fatal error রিটার্ন করবেঃ

kt_satt_skill_example_id=199

এপ্লিকেশনের আবশ্যক ফাইলের জন্য require স্টেটমেন্ট ব্যবহার করুন।

অপরদিকে, এপ্লিকেশনের ফাইলট যদি ঐচ্ছিক হয় তাহলে include স্টেটমেন্ট ব্যবহার করুন।

Content added || updated By

পিএইচপি ফাইল হ্যান্ডেলিং - PHP File Handling

ফাইল হ্যান্ডেলিং যেকোন ওয়েব এপ্লিকেশনেরই একটি গুরুত্বপূর্ণ অংশ। বিভিন্ন কাজের জন্য প্রায়ই আপনাকে ফাইল ওপেন এবং প্রসেস করতে হতে পারে।


পিএইচপি ফাইল ম্যানিপুলেশন

ফাইল তৈরি, পড়া, আপলোড এবং মডিফাই বা পরিবর্তন করার জন্য পিএইচপিতে বেশ কয়েকটি ফাংশন রয়েছে।

ফাইল ম্যানিপুলেশনের সময় সতর্ক থাকা উচিৎ!

ফাইল ম্যানিপুলেশন(Manipulation) এর সময় আপনাকে অবশ্যই খুব সতর্ক থাকতে হবে।

কারণ আপনার সামান্য ভুলে অনেক বড় ধরনের ক্ষতি হয়ে যেতে পারে। সাধারন ভূলগুলো হলোঃ ভুল করে সঠিক ফাইল এডিট না করা, অপ্রয়োজনীয় ডেটা দিয়ে হার্ড-ড্রাইভ পূর্ণ করা এবং ভুলবশত কোন ফাইল ডিলেট করে ফেলা।


পিএইচপি readfile() ফাংশন

readfile() ফাংশন একটি ফাইলকে পড়ে এবং এটিকে আউটপুট বাফারে(buffer) লিখে প্রকাশ করে।

মনে করুন "abbreviation.txt" নামে আমাদের সার্ভারে একটি টেক্সট ফাইল রয়েছে।

"abbreviation.txt" ফাইল

Wi-Fi = Wireless Fidelity 
WiMax = Worldwide Interoperability for Microwave Access
GSM = Global System for Mobile communication
CDMA = Code Division Multiple Access
W-CDMA = Wideband Code Division Multiple Access
AMPS = Advance Mobile Phone System
UMTS = Universal Mobile Telecommunication System
IMT = International Mobile Telecommunication

আমরা পিএইচপি readfile() ফাংশন ব্যবহার করে ফাইলটির কন্টেন্ট আউটপুট হিসাবে ব্রাউজারে দেখাবো। এক্ষেত্রে readfile() ফাংশন সংশ্লিষ্ট ফাইলটি পড়ে এবং আউটপুটের সাথে ফাইলের সাইজও বাইট সংখ্যায় রিটার্ন করে।

kt_satt_skill_example_id=234

আপনি যখন শুধুমাত্র ফাইল ওপেন করতে এবং এর কন্টেন্ট পড়তে চাইবেন কেবল তখনই readfile() ফাংশনটি সবচেয়ে বেশী কার্যকরী হবে।

পরবর্তী অধ্যায়গুলোতে ফাইল হ্যান্ডেলিং সম্মন্ধে আরো ভালো ধারনা দেওয়া হয়েছে।

Content added || updated By

পিএইচপি ফাইল খোলা/পড়া/বন্ধ - PHP fopen(), fclose()

এই অধ্যায়ে আপনি জানবেন কিভাবে সার্ভারে একটি ফাইল খোলা, পড়া এবং বন্ধ করা যায়।


পিএইচপি fopen() ফাংশন ব্যবহার করে ফাইল খোলা

সার্ভারে ফাইল খোলার সবচেয়ে সহজ এবং উত্তম পদ্ধতি হলো fopen() ফাংশন এর ব্যবহার। ফাইল ওপেন করার ক্ষেত্রে এই ফাংশনটি আপনাকে readfile() ফাংশনের তুলনায় অনেক বেশি অপশন এবং সুবিধা প্রদান করবে।

পূর্বের মত এই অধ্যায়েও আমরা "abbreviation.txt" টেক্সট ফাইলটি ব্যবহার করবোঃ

"abbreviation.txt" ফাইল

Wi-Fi = Wireless Fidelity 
WiMax = Worldwide Interoperability for Microwave Access
GSM = Global System for Mobile communication
CDMA = Code Division Multiple Access
W-CDMA = Wideband Code Division Multiple Access
AMPS = Advance Mobile Phone System
UMTS = Universal Mobile Telecommunication System
IMT = International Mobile Telecommunication

fopen() সিনট্যাক্স

kt_satt_skill_example_id=239

প্যারামিটার এর বর্ণনাঃ

  • filename- fopen() ফাংশনের মাধ্যমে যে ফাইলটি ওপেন করা হবে সেটির নাম নির্দেশ করে।
  • mode- ফাইলটি যেই মোডে ওপেন হবে সেই মোডকে নির্দেশ করে।

নিচের উদাহরণের মাধ্যমে দেখানো হলো fopen() ফাংশন ব্যবহার করে কিভাবে একটি ফাইল ওপেন করতে হয় এবং যদি নির্দিষ্ট ফাইলটি ওপেন করা সম্ভব না হয় তাহলে কিভাবে একটি ত্রুটি(error) মেসেজ জেনারেট করতে হয়ঃ

kt_satt_skill_example_id=240

নিম্নের টেবিলে ফাইল ওপেন এর বিভিন্ন মোড তুলে ধরা হলোঃ

মোডবিবরণ
rread only মোডে ফাইল ওপেন করে
ফাইল পয়েন্টার ফাইলের একেবারে প্রথম থেকে আরম্ভ হয়।
wwrite only মোডে ফাইল ওপেন করে
বিদ্যমান ফাইলের সকল কন্টেন্ট মুছে ফেলবে অথবা আগে থেকে ফাইল না থাকলে নতুন ফাইল তৈরি করবে। ফাইল পয়েন্টার ফাইলের একেবারে প্রথম থেকে আরম্ভ হয়।
awrite only মোডে ফাইল ওপেন করে
বিদ্যমান ফাইলের সকল কন্টেন্ট সংরক্ষিত থাকবে। ফাইল পয়েন্টার ফাইলের একেবারে শেষ থেকে আরম্ভ হয়। পূর্বে থেকে ফাইল না থাকলে নতুন ফাইল তৈরি করবে।
xwrite only মোডে নতুন ফাইল তৈরি করে
যদি পূর্বে থেকে ফাইল বিদ্যমান থাকে তাহলে FALSE এবং error রিটার্ন করবে।
r+read/write মোডে ফাইল ওপেন করে
ফাইল পয়েন্টার ফাইলের একেবারে শুরু থেকে আরম্ভ হয়।
w+read/write মোডে ফাইল ওপেন করে
ফাইলে কোন তথ্য থাকলে মুছে যাবে। অথবা আগে থেকে ফাইল না থাকলে নতুন ফাইল তৈরি করে। ফাইল পয়েন্টার ফাইলের একেবারে প্রথম থেকে আরম্ভ হয়।
a+read/write মোডে ফাইল ওপেন করে
ফাইল থেকে পূর্বর তথ্য মুছে যাবে না, বরং নতুন তথ্য সংযোজন হবে। ফাইল পয়েন্টার ফাইলের একেবারে শেষ থেকে আরম্ভ হয়। এক্ষেত্রে আগে থেকে ফাইল না থাকলে নতুন ফাইল তৈরি করবে।
x+read/write মোডে নতুন ফাইল তৈরি করে
যদি পূর্বে থেকে ফাইল বিদ্যমান থাকে তাহলে FALSE এবং error রিটার্ন করবে।


 


fread() ফাংশন ব্যবহার করে পিএইচপি ফাইল পড়া

fread() ফাংশন একটি ওপেন করা ফাইল পড়ে।

fread() সিনট্যাক্স

kt_satt_skill_example_id=242

shrotcode

প্যারামিটার এর বর্ণনাঃ

  • filename- fread() ফাংশনের মাধ্যমে যে ফাইলটি ওপেন করা হবে তার নাম নির্দেশ করে।
  • fileSize()- এই ফাংশনটি যে ফাইলটি ওপেন করা আছে তার সাইজ রিটার্ন করে।

উদাহরণঃ fread() ফাংশন ব্যবহার করে abbreviation.txt ফাইল এর সম্পূর্ণ ডেটা পড়া

kt_satt_skill_example_id=243

উপরের পিএইচপি কোড "abbreviation.txt" ফাইল এর একেবারে প্রথম থেকে শেষ পর্যন্ত পড়বেঃ


fclose() ফাংশন ব্যবহার করে ফাইল বন্ধ করা

একটি ওপেন করা ফাইল বন্ধ করার জন্য fclose() ফাংশন ব্যবহার করা হয়।

কোন ফাইল এর কাজ শেষ হলে সেটিকে বন্ধ করে দেওয়া উচিৎ। কারণ আপনি নিশ্চয়ই চাইবেন না যে একটি ওপেন ফাইল আপনার সার্ভারে ঘুরাঘুরি করে অযথা মেমোরি দখল করে রাখুক!

fclose() ফাংশন ব্যবহার করে আপনি যেই ফাইলটিকে ক্লোজ করতে চান প্যারামিটার হিসাবে সেই ফাইলের নাম অথবা ভ্যারিয়েবলের নাম লাগবে(যার মধ্যে ফাইলটি রাখা হয়েছে)।

kt_satt_skill_example_id=244


পিএইচপি fgets() ফাংশন ব্যবহার করে সিঙ্গেল লাইন পড়া

একটি ফাইল থেকে শুধুমাত্র এক লাইন পড়ার জন্য fgets() ফাংশন ব্যবহার করা হয়।

উদাহরণঃ "abbreviation.txt" ফাইলের প্রথম লাইন আউটপুট হিসাবে দেখাবে

kt_satt_skill_example_id=245

বিঃদ্রঃ fgets() ফাংশনকে কল করার পর ফাইল পয়েন্টার পরবর্তী লাইনে অগ্রসর হয়।

পিএইচপি feof() ফাংশন ব্যবহার করে অজানা দৈর্ঘ্যের তথ্য পড়া

eof এর পূর্ণরূপঃ "end-of-file"।
পিএইচপি feof() ফাংশন ফাইল পয়েন্টার ফাইলের শেষে পৌছেছে কিনা চেক করে।

অজানা দৈর্ঘ্য বিশিষ্ট তথ্যকে Loop করার জন্য feof() ফাংশনটি বেশ উপকারী।

উদাহরণfeof() ফাংশনটি "abbreviation.txt" ফাইলের শেষে না যাওয়া পর্যন্ত ফাইলটিকে লাইন বাই লাইন পড়তে থাকবে।

kt_satt_skill_example_id=248


পিএইচপি fgetc() ফাংশন ব্যবহার করে সিঙ্গেল ক্যারেক্টার পড়া

একটি ফাইলের একটি একক ক্যারক্টার বা অক্ষর পড়ার জন্য fgetc() ফাংশন ব্যবহার করা হয়।

নিচের উদাহরণে "abbreviation.txt" ফাইলটিকে ক্যারেক্টার বাই ক্যারেক্টার পড়বে, যতক্ষন না পর্যন্ত শেষ লাইনে পৌছায়ঃ

উদাহরণঃ fgetc() ফাংশনটি "abbreviation.txt" ফাইলের শেষ অক্ষরে না যাওয়া পর্যন্ত ফাইলটিকে ক্যারেক্টার বাই ক্যারেক্টার পড়তে থাকবে।

kt_satt_skill_example_id=250

নোটঃ fgetc() ফাংশনকে কল করার পর ফাইল পয়েন্টার পরবর্তী ক্যারক্টারে অগ্রসর হয়।

Content added || updated By

পিএইচপি ফাইল তৈরি/লেখা - PHP fwrite()

এই অধ্যায়ে আমরা শিখবো কিভাবে সার্ভারে ফাইল তৈরি করা যায় এবং লেখা যায়।


পিএইচপি fopen() ফাংশন ব্যবহার করে ফাইল তৈরি

পিএইচপি সার্ভারে ফাইল তৈরি করার জন্যও fopen() ফাংশনটি ব্যবহার করা হয়। কিছুটা হতভম্ব হচ্ছেন তাই না? কিন্তু পিএইচপিতে যেই ফাংশন দিয়ে ফাইল ওপেন করা হয় সেটি দিয়ে ফাইল তৈরিও করা যায়।

মনে করুন, আপনি একটি ফাইল ওপেন করার জন্য fopen() ফাংশন ব্যবহার করবেন, কিন্তু ফাইলটি পূর্ব থেকে তৈরি করা নাই। তাহলে এটি আপনার জন্য একটি নতুন ফাইল তৈরি করে দিবে। এটা নির্ভর করবে আপনি কোন মোডে fopen() ফাংশনটি ব্যবহার করছেন। অর্থাৎ আপনি ফাংশন এর mode প্যারামিটারে writting(w) অথবা appending(a) মোড ব্যবহার করছেন কিনা।

নিম্নের উদাহরণে "myFile.txt" নামে একটি ফাইল তৈরি করা হয়েছে। পিএইচপি কোড যে ডিরেক্টোরিতে রয়েছে ফাইলটিও একই ডিরেক্টোরিতে তৈরি হবেঃ

kt_satt_skill_example_id=254


পিএইচপি ফাইল এক্সেস পারমিশন

যদি এই কোডগুলো রান করাতে error এর সম্মুখিন হোন, তাহলে সার্ভার হার্ড-ড্রাইভে আপনার পিএইচপি ফাইল এক্সেস অনুমতি আছে কিনা চেক করে নিন।


fwrite() ফাংশন ব্যবহার করে ফাইলে লেখা

ফাইলে লেখার জন্য fwrite() ফাংশন ব্যবহার করা হয়।

fwrite() সিনট্যাক্স

kt_satt_skill_example_id=255

প্যারামিটার এর বর্ণনাঃ

  • filename- fopen() ফাংশনের মাধ্যমে যে ফাইলটি ওপেন করা হবে সেটির নাম নির্দেশ করে।
  • content- ফাইলে যা কিছু লেখা হবে সেই স্ট্রিংকে নির্দেশ করে।

নিচের উদাহরণে "newFile.txt" নামে একটি নতুন ফাইলে কিছু নাম লেখা হয়েছেঃ

kt_satt_skill_example_id=256

উপরের প্রোগ্রামে লক্ষ্য করলে দেখবেন, আমরা "newFile.txt" ফাইলটিতে দুই বার লিখেছি। প্রত্যেকবারই আমরা ফাংশন এর মধ্য দিয়ে ফাইল নাম এবং স্ট্রিংযুক্ত $text ভ্যারিয়েবল প্রেরণ করেছি যা প্রথমবার "আজিজুর রহমান" এবং দ্বিতীয়বার "জিহাদুল ইসলাম" ধারন করছিল। লেখা শেষ হওয়ার পর আমরা fclose() ফাংশনের মাধ্যমে ফাইলটি ক্লোজ করে দিয়েছি।


পিএইচপি ফাইল ওভাররাইটিং

আমাদের "newFile.txt" ফাইলে কিছু তথ্য রয়েছে। এখন আমরা আপনাকে দেখাব, যদি পূর্বে থেকে বিদ্যমান কোন ফাইল লেখার জন্য ওপেন করা হয় তাহলে কি ঘটবে? পূর্বের বিদ্যমান সকল তথ্য মুছে যাবে এবং আমরা পূনরায় নতুন করে লেখা শুরু করবো।

নিচের উদাহরণে আমরা আমাদের বিদ্যমান "newFile.txt" ফাইলটি ওপেন করবো এবং এতে কিছু নতুন তথ্য লিখবোঃ

kt_satt_skill_example_id=257

 

Content added || updated By

পিএইচপি ফাইল আপলোড - PHP File Upload

এই অধ্যায়ে আপনি পিএইচপি ব্যবহার করে সার্ভারে ফাইল আপলোড করা শিখবেন। পিএইচপির সাহায্যে সার্ভারে ফাইল আপলোড করা খুবই সহজ।

যাইহোক, এই সহজ বিষয়টিও আপনার জন্য বিপদ ডেকে আনতে পারে! তাই ফাইল আপলোড এর অনুমতি দেয়ার ক্ষেত্রে সতর্ক থাকুন।


"php.ini" ফাইল কনফিগার

প্রথমতঃ এটি নিশ্চিত করুন যে, ফাইল আপলোড করার জন্য "php.ini" ফাইল কনফিগার করা হয়েছে।

ফাইল আপলোড কনফিগার করার জন্য আপনার "php.ini" ফাইলে file_filelocation লিখে সার্চ করে এটিতে On সেট করুনঃ

file_filelocation = On

ফাইল আপলোডের জন্য এইচটিএমএল ফরম তৈরি

দ্বিতীয়তঃ একটি এইচটিএমএল ফরম তৈরি করুন যার মাধ্যমে একজন ইউজার তার পছন্দ মতো ইমেজ আপলোড করতে পারবে।

kt_satt_skill_example_id=259

উপরের এইচটিএমএল ফরমের জন্য কিছু করনীয় বিষয়ঃ

  • ফরম সাবমিট এর সময় method="post" এর ব্যবহার নিশ্চিত করুন।
  • এছাড়া ফরমের মধ্যে enctype="multipart/form-data" এট্রিবিউটটি ব্যবহার করতে হবে। এই এট্রিবিউট এর মাধ্যমে ফরম সাবমিট এর সময় কন্টেন্ট এর টাইপ নির্ধারণ করা হয়।

উপরোক্ত শর্তসমুহ না মানলে ফাইল আপলোড কাজ করবে না।

ইনপুট এলিমেন্টে type="file" এট্রিবিউটটি ব্যবহারের মাধ্যমে ব্রাউজারে একটি বাটন তৈরি হবে যার মাধ্যমে ফাইল সিলেক্ট করা যাবে।

উপরের ফরমটি প্রসেস করার জন্য method="post" এর সাহায্যে "uploadfile.php" ফাইলের কাছে পাঠানো হয়।

আপনার বুঝার সুবিধার্থে নিম্নে "uploadfile.php" ফাইলের কোডসমূহ ধাপে ধাপে দেখানো হয়েছে এবং পরিশেষে সম্পূর্ণ কোড একসাথে লেখা হয়েছে।


ফাইল আপলোডের পিএইচপি স্ক্রিপ্ট

ফাইল আপলোড করার কোডগুলো "uploadfile.php" ফাইলে থাকেঃ

kt_satt_skill_example_id=260

পিএইচপি স্ক্রিপ্টের ব্যাখ্যাঃ

  • $target_directory = "filelocation/" - ফাইলটি যে ডিরেক্টরিতে গিয়ে জমা হবে সেটি নির্ধারণ করে।
  • $target_file - যে ফাইলটি আপলোড হবে সেটির path নির্দিষ্ট করে।
  • $fileuploadDone = 1 - ফাইল আপলোড এর স্ট্যাটাস নির্দেশ করে।
  • $fileExtension - ফাইলের এক্সটেনশন ধারন করে।
  • ইমেজ ফাইলটি আসল ইমেজ নাকি ফেক ইমেজ পরবর্তীতে চেক করা হবে।

নোটঃ যে ডিরেক্টরিতে "uploadfile.php" ফাইলটি রয়েছে, আপনাকে সেখানে "filelocation" নামে নতুন একটি ডিরেক্টরি তৈরি করতে হবে। আপলোডকৃত ফাইলগুলো এই ডিরেক্টরিতে সংরক্ষণ হবে।


ফাইল পূর্ব থেকেই আছে কিনা চেক করা

এখন আমরা অনেকগুলো সীমাবদ্ধতা যুক্ত করতে পারি।

প্রথমতঃ আমরা যে ফাইলটি আপলোড করবো সেই ফাইলটি "filelocation" ফোল্ডারের মধ্যে আছে কিনা চেক করে নিব। যদি পূর্ব থেকেই ফাইল আপলোড করা থাকে তাহলে একটি error মেসেজ প্রদর্শিত হবে এবং $fileuploadDone এ 0 সেট হবেঃ

kt_satt_skill_example_id=262


ফাইলের সাইজ লিমিটেশন

আমাদের এইচটিএমএল ফরমের ফাইল ইনপুট ফিল্ডের নাম দেওয়া হয়েছে "fileUpload"।

এখন আমরা ফাইলের সাইজ চেক করবো। ফাইলটি যদি 300kb এর চেয়ে বড় হয় তাহলে একটি error মেসেজ প্রদর্শিত হবে এবং $fileuploadDone এ 0 সেট হবেঃ

kt_satt_skill_example_id=263

ফাইলের টাইপ লিমিটেশন

নিচের কোডগুলো একজন ইউজারকে শুধুমাত্র JPG, JPEG, PNG এবং GIF ফাইল আপলোড করার অনুমতি দিবে। এগুলো ব্যতীত অন্য টাইপের ফাইল আপলোড করলে $fileuploadDone এ 0 সেট হওয়ার পূর্বেই একটি error মেসেজ প্রদর্শিত হবেঃ

kt_satt_skill_example_id=264


সম্পূর্ণ পিএইচপি ফাইল আপলোড স্ক্রিপ্ট

নিম্নে সম্পূর্ণ "uploadfile.php" ফাইল এর কোড দেওয়া হলোঃ

kt_satt_skill_example_id=265

 

Content added || updated By

এই অধ্যায়ে আপনি কুকি সম্মন্ধে জানবেন। একজন ইউজারকে আইডেন্টিফাই করতে প্রায়ই কুকি(cookie) ব্যবহার করা হয়।


কুকি কি?

কুকি হলো একটি ছোট্ট ফাইল। সার্ভার এই ফাইলকে ইউজারের কম্পিউটারে সংস্থাপন(embed) করে রাখে। প্রত্যেকবার ঐ একই কম্পিউটার থেকে ব্রাউজার এর মাধ্যমে যখন সার্ভারে একটি পেজের জন্য রিকুয়েস্ট পাঠানো হয় তখন ঐ কম্পিউটার থেকে পেজ রিকুয়েস্টের পাশাপাশি কুকিটিও সেন্ড হয়।

পিএইচপির সাহায্যে আপনি কুকি ভ্যালু তৈরি করতে পারবেন এবং উদ্ধারও করতে পারবেন।


পিএইচপির সাহয্যে কুকি তৈরি

setcookie() ফাংশনের মাধ্যমে কুকি তৈরি করা হয়।

সিনট্যাক্স

kt_satt_skill_example_id=270

শুধুমাত্র name প্যারামিটারটি আবশ্যক। অন্যান্য সকল প্যারামিটারগুলো হলো ঐচ্ছিক।


পিএইচপি কুকি তৈরি/উদ্ধার

নিম্নের উদাহরনে পিএইচপি কুকি তৈরি করে দেখানো হলোঃ

kt_satt_skill_example_id=272

উদাহরণের ব্যাখ্যা

  • উপরের উদাহরণে "তামজীদ হাসান" ভ্যালুযুক্ত একটি কুকি তৈরি করা হয়েছে এবং যার নাম দেওয়া হয়েছে "user"।
  • ৩০ দিন(৮৬৪০০ * ৩০) পরে কুকিটির মেয়াদর্ত্তীন্ন(expire) হবে। "/" মানে হলো কুকিটি সমগ্র ওয়েবসাইট জুড়েই বিদ্যমান থাকবে। এছাড়া আপনি আপনার প্রয়োজন মতো ডিরেক্টরি সেট করে নিতে পারবেন।
  • isset() ফাংশন ব্যবহার করে কুকি সেট করা হয়েছে কিনা চেক করা হয়।
  • কুকি সেট করা হলে আমরা গ্লোবাল ভ্যারিয়েবল $_COOKIE এর মাধ্যমে "user" কুকির ভ্যালু উদ্ধার করবো।

নোটঃ setcookie() ফাংশনটি অবশ্যই ট্যাগ এর উপরে(আগে) ব্যবহার করতে হবে।

নোটঃ যখন কুকি পাঠানো হয় তখন ভ্যালু স্বয়ংক্রিয়ভাবে URL encoded হয় এবং যখন গ্রহণ করা হয় তখন স্বয়ংক্রিয়ভাবে decoded হবে।

URL encoding প্রতিরোধ করার জন্য setrawcookie() ফাংশনটি ব্যবহার করুন।


কুকি ভ্যালু পরিবর্তন করা

একটি কুকির ভ্যালু পরিবর্তন(modify) করার জন্য setcookie() ফাংশন ব্যবহার করে পূনরায় কুকিটিকে সেট করতে হয়।

kt_satt_skill_example_id=273


কুকি ডিলেট করা

কুকি ডিলেট করার জন্য setcookie() ফাংশন এর expire প্যারামিটারে মেয়াদ উত্তীর্ণ তারিখ ব্যবহার করুনঃ

kt_satt_skill_example_id=274


কুকি সক্রিয় আছে কিনা চেক করা

নিচের উদাহরণে একটি ছোট php স্ক্রিপ্ট তৈরি করা হয়েছে যা কুকি সক্রিয়(Enable) আছে কিনা চেক করবে।

প্রোগ্রামের প্রথমেই setcookie() ফাংশন ব্যবহার করে একটি কুকি তৈরি করে নেওয়া হয়েছে এবং তারপরে count() ফাংশনের মধ্যে $_COOKIE অ্যারে ভ্যারিয়েবলকে প্যারামিটার হিসাবে ব্যবহার করে কুকি সক্রিয় আছে কিনা চেক করা হয়েছে।

kt_satt_skill_example_id=276

 

Content added || updated By

পিএইচপি - সেশন - PHP session()

এই অধ্যায়ে আপনি পিএইচপি সেশন সম্মন্ধে জানবেন। সেশন হলো ভ্যারিয়েবলের মধ্যে তথ্য সংরক্ষণ করার একটি উপায় যা একাধিক পেজে ব্যবহার করা যায়।

এই তথ্য গুলো ব্যবহারকারীর কম্পিউটারে সংরক্ষিত হয় না, বরং সার্ভারে সংরক্ষিত হয়।


পিএইচপি সেশন কি?

আপনি যখন একটি এপ্লিকেশন দিয়ে আপনার প্রয়োজনীয় কাজ করতে চান তখন প্রথমেই এটিকে চালু করেন, তারপর এর মধ্যে কিছু কাজ করেন, পরিশেষে এটিকে বন্ধ করে দেন। সেশন অনেকটা এই রকমই।

আপনার কম্পিউটার জানে আপনি কে। এটি এও জানে আপনি কখন এপ্লিকেশনটি চালু করেছেন এবং কখন বন্ধ করেছেন। কিন্তু অনলাইনের সমস্যা হলো ওয়েব সার্ভার জানে না আপনি কে অথবা আপনি কি করতে চান। কারন HTTP এড্রেস এ ব্যবহারকারী(user) সম্পর্কিত কোনো তথ্য থাকে না।

সেশন ভ্যারিয়েবল ব্যবহারকারীর username, name, password ইত্যাদি তথ্য সংরক্ষন করে রাখে যা একাধিক পেজে ব্যবহার করা যায়। একজন ব্যবহারকারী ব্রাউজার বন্ধ করার আগ পর্যন্ত সেশন ভ্যারিয়েবল ডিফল্টভাবে সংশ্লিষ্ট তথ্য সংরক্ষন করে রাখে।

সুতরাং সেশন ভ্যারিয়েবল একজন ব্যবহারকারীর তথ্য সংরক্ষন করে রাখে যা শুধুমাত্র ঐ এপ্লিকেশনে অবস্থিত সকল পেজে ব্যবহার করা যায়।

বিঃদ্রঃ আপনি যদি তথ্যসমূহ স্থায়ীভাবে সংরক্ষন করতে চান তাহলে ডাটাবেসে সংরক্ষন করুন।


পিএইচপি সেশন কিভাবে শুরু হয়?

session_start() ফাংশনের মাধ্যমে একটি সেশন শুরু হয়।

পিএইচপি সুপার গ্লোবাল ভ্যারিয়েবল $_SESSION দ্বারা সেশন ভ্যারিয়েবল গুলোকে সেট করতে হয়।

চলুন "test_session1.php" নামে একটি নতুন পেজ তৈরি করি। এই পেজে আমরা একটি নতুন পিএইচপি সেশন শুরু করবো এবং কিছু সেশন ভেবিয়েবল সেট করবোঃ

shortcode

বিঃদ্রঃ মনে রাখবেন, session_start() ফাংশনটি ডকুমেন্টের প্রথম লাইনে লিখতে হবে।


কিভাবে পিএইচপি সেশন ভ্যারিয়েবলের মান পাবেন?

এখন আমরা "test_session2.php" নামে আরেকটি পেজ তৈরি করবো। এই পেজ থেকে আমরা সেশনের তথ্যসমূহ এক্সেস করবো যা আমরা প্রথমে "test_session1.php" পেজে সেট করেছিলাম।

একটু লক্ষ্য করলে আপনি দেখবেন, সেশন ভেরিয়েবলগুলো প্রতিটি নতুন পৃষ্ঠায় স্বতন্ত্রভাবে অতিক্রম হচ্ছে না, এই জন্য আপনাকে প্রতিটি পেজের প্রথমেই session_start() ফাংশনটি শুরু করতে হবে।

লক্ষ্য করলে আপনি আরও দেখবেন যে, প্রতিটি সেশন ভ্যারিয়েবলের মান সুপার গ্লোবাল ভ্যারিয়েবল $_SESSION এর মধ্যে সংরক্ষিত হয়ঃ

shortcode

একজন ব্যবহারকারীর সবগুলো সেশন ভ্যারিয়েবলের মান দেখার জন্য আপনি print_r($_SESSION); ফাংশন ব্যবহার করতে পারেন।

shortcode

সেশন কিভাবে কাজ করে এবং কীভাবে জানতে পারে যে এটাই আপনি?

বেশীরভাগ সেশনই ইউজার কম্পিউটারে ইউজার এর একটি কী(key) সেট করে যা দেখতে কিছুটা 61n3ika5vtee9ro9lb04rqngf6 এর মত। তারপরে যখন অন্য একটি পেজে সেশনটি ওপেন করা হয়, তখন এটি ইউজার কী এর জন্য কম্পিউটারটিকে স্ক্যান করে। এটি যদি পূর্বের কোনো সেশনের সাথে মিল খুঁজে পায় তাহলে সেটিকে অ্যাক্সেস করে।
আর যদি কোনো মিল খুঁজে না পায় তাহলে একটি নতুন একটি সেশন তৈরি করে।


পিএইচপি সেশন ভ্যারিয়েবল কিভাবে পরিবর্তন করা হয়?

ওভাররাইট(overwrite) করার মাধ্যমে আপনি সেশন ভ্যারিয়েবল পরিবর্তন করতে পারবেনঃ

shortcode

পিএইচপি সেশন বাতিল করা

সকল গ্লোবাল সেশন ভ্যারিয়েবলগুলো রিমুভ এবং বাতিল করতে যথাক্রমে session_unset() এবং session_destroy() ফাংশন ব্যবহার করতে হবেঃ

shortcode

উপরের উদাহরনে session_unset() এবং session_destroy() ফাংশন ব্যবহার করার ফলে সবগুলো সেশন ভ্যারিয়েবল মুছে গেছে, তাই কোড রান করালে ফলাফল হিসাবে কিছুই দেখাবে না।

Content added By

আরও দেখুন...

Promotion